class Configration:
    def __init__(self, default_config):
        if default_config is not None and default_config == "":
            self.default_config = default_config
        else:
            self.default_config = "D:\\IdentificationModel\\config\\config.txt"

    def readConfig(self):
        # 创建一个空字典来存储键值对
        config_dict = {}
        # 读取文件内容并解析键值对，同时忽略行尾以#及其后的内容
        try:
            with open(self.default_config, 'r', encoding='utf-8') as file:
                for line in file:
                    # 去除行尾的换行符
                    line = line.rstrip()
                    # 查找#字符的位置，如果不存在则默认为-1（即没有#）
                    hash_index = line.find('#')
                    # 如果#存在，则只取#之前的部分
                    if hash_index != -1:
                        line = line[:hash_index]
                    # 去除行首和行尾的空白字符
                    stripped_line = line.strip()
                    # 如果行不为空，则解析键值对
                    if stripped_line:
                        # 使用rsplit从右向左分割，确保只分割一次，并去除键和值两边的空白字符
                        key, value = stripped_line.rsplit('=', 1)
                        key = key.strip()
                        value = value.strip()
                        # 将解析后的键值对添加到字典中
                        config_dict[key] = value
                # 打印字典以验证其内容
                print(config_dict)
        except FileNotFoundError:
            print(f"文件 {self.default_config} 未找到，请检查文件名和路径是否正确。")
        except ValueError:
            print("文件中存在格式错误的行，无法解析为键值对。")
        except Exception as e:
            print(f"读取文件时发生错误: {e}")
        return config_dict

    def readYaml(self):
        return "D:\\IdentificationModel\\config"


if __name__ == '__main__':
    config = Configration(None)
    config.readConfig()  # .get("data")
